
CC = gcc
CFLAGS = -ansi
BIBL = -lgmp -pthread
PALGS = algorithms/
PUTIL = util/
ALG1 = gauss-legendre
ALG2 = borwein
ALG3 = monte-carlo
UTIL = util

all: $(ALG1)_seq $(ALG1)_par $(ALG2)_seq $(ALG2)_par $(ALG3)

#Programas
$(ALG3): $(ALG3).o
	@echo "*********| Compilando " $(ALG3)" ..."
	$(CC) $(CFLAGS) -o $(ALG3) $(ALG3).o $(UTIL).o $(BIBL)
	@echo "*********| Programa " $(ALG3)" criado"

$(ALG2)_par: $(ALG2)_par.o
	@echo "*********| Compilando " $(ALG2)_par" ..."
	$(CC) $(CFLAGS) -o $(ALG2)_par $(ALG2)_par.o $(UTIL).o $(BIBL)
	@echo "*********| Programa " $(ALG2)_par" criado"


$(ALG2)_seq: $(ALG2)_seq.o
	@echo "*********| Compilando " $(ALG2)_seq" ..."
	$(CC) $(CFLAGS) -o $(ALG2)_seq $(ALG2)_seq.o $(UTIL).o -lgmp
	@echo "*********| Programa " $(ALG2)_seq" criado"


$(ALG1)_par: $(ALG1)_par.o
	@echo "*********| Compilando " $(ALG1)_par" ..."
	$(CC) $(CFLAGS) -o $(ALG1)_par $(ALG1)_par.o $(UTIL).o $(BIBL)
	@echo "*********| Programa " $(ALG1)_par" criado"


$(ALG1)_seq: $(ALG1)_seq.o
	@echo "*********| Compilando " $(ALG1)_seq" ..."
	$(CC) $(CFLAGS) -o $(ALG1)_seq $(ALG1)_seq.o $(UTIL).o -lgmp
	@echo "*********| Programa " $(ALG1)_seq" criado"


#Arquivos objetos
$(ALG3).o: $(PALGS)$(ALG3).c $(UTIL).o
	@$(CC) $(CFLAGS) -c $(PALGS)$(ALG3).c $(BIBL)

$(ALG2)_par.o: $(PALGS)$(ALG2)_par.c $(UTIL).o
	@$(CC) $(CFLAGS) -c $(PALGS)$(ALG2)_par.c $(BIBL)

$(ALG2)_seq.o: $(PALGS)$(ALG2)_seq.c $(UTIL).o
	@$(CC) $(CFLAGS) -c $(PALGS)$(ALG2)_seq.c -lgmp

$(ALG1)_par.o: $(PALGS)$(ALG1)_par.c $(UTIL).o
	@$(CC) $(CFLAGS) -c $(PALGS)$(ALG1)_par.c $(BIBL)

$(ALG1)_seq.o: $(PALGS)$(ALG1)_seq.c $(UTIL).o
	@$(CC) $(CFLAGS) -c $(PALGS)$(ALG1)_seq.c -lgmp

$(UTIL).o: $(PUTIL)$(UTIL).h $(PUTIL)$(UTIL).c
	@$(CC) $(CFLAGS) -c $(PUTIL)$(UTIL).c -lgmp

clean:
	@rm -f *.o
	@echo $(MSG)"*********| Arquivos .o apagados"
